Linux使用crontab定时任务执行python文件小记 | 您所在的位置:网站首页 › Python 文件打开 › Linux使用crontab定时任务执行python文件小记 |
在centos系统中默认安装了crontab,可以对其进行设置来进行定时任务,定时任务的最低时间点是分钟 先来介绍一下基本使用吧 可以使用 vim /etc/crontab 打开crontab的配置文件,进行crontab的定时任务的配置 配置格式: 每五分钟执行 */5 * * * * 每小时执行 0 * * * * 每天执行 0 0 * * * 每周执行 0 0 * * 0 每月执行 0 0 1 * * 每年执行 0 0 1 1 * 另外在执行的任务中如果有输出,可以在任务的后面添加log日志,将输出或执行信息写入到log日志中 添加方式: eg: 0 * * * * root /root/main.py>>result.log 2>&1 每小时以root的身份执行一次root/main.py文件, 并将执行过程中出现的输出信息或错误信息打印到root/result.log文件中 在执行过程中也可以查看crontab的log日志,查看crontab的执行情况:tail -f /var/log/cron 上面说了基本的crontab的设置,在执行py文件的时候还有一些小坑1、首先,个人测试需要将添加到crontab执行的文件加上可执行权限:chmod +x xxxx.py 2、其次在py文件的开始第一行需要添加 #!/usr/bin/env pyhton 让文件执行的时候明白调用什么解释器执行 3、最坑的一点就是导包错误,提示:ModuleNotFoundError: No module named 'xxxx' 主要是因为在crontab执行文件的时候不知道应该从哪里加载这些包文件 可以先直接进入python解释器(就是直接写python进入) >>> import psycopg2 >>> psycopg2.__file__ '/usr/local/lib/python3.6/site-packages/psycopg2/__init__.py'查看python解释包的位置,我这个位置是'/usr/local/lib/python3.6/site-packages/' 需要在py文件的开始导入这个包之前将这个文件位置 import sys sys.path.append('/usr/local/lib/python3.6/site-packages') import psycopg2目前遇到这些坑,大家有更好的解决方法欢迎一块讨论补充 |
CopyRight 2018-2019 实验室设备网 版权所有 |